﻿//-----------------------------------------------------------------------
// <copyright file="IFileSystemContentProvider.cs" author="Artak Mkrtchyan">
//     Creative Commons - GNU General Public License (http://creativecommons.org/licenses/GPL/2.0/
// </copyright>
// <author>Artak Mkrtchyan</author>
// <email>mkArtak@gmail.com</email>
// <date>19/03/2013</date>

using ConsoleHoster.Common.Model;
using System.Collections.Generic;
using System.IO;

namespace ConsoleHoster.Common.Utilities.IO
{
	public interface IFileSystemContentProvider
	{
		string[] GetFolders(string argFolder, string argPattern);

		string[] GetFiles(string argFolder);

		string[] GetAllItems(string argFolder, string argPattern);

		IEnumerable<string> EnumerateFiles(string argPath);

		IEnumerable<string> EnumerateFolders(string argPath);

		IEnumerable<DriveInfo> GetAvailableDrives();

		string GetCurrentDirectory();

		bool DirectoryExists(string argPath);

		void CreateDirectory(string argPath);

		bool FileExists(string argPath);

		void DeleteDirectory(string argPath, bool argRecursive);

		void CopyFile(string argSourceFile, string argDestinationFile, bool argOverwrite);

		string GetFileDirectory(string argFilePath);

		string GetRandomFolderName();

		string GetTempLocationInCurrentFolderForFile(string argFolder, string argFilename);

		void DeleteFile(string argPath);

		void ExportShortcut(IWindowsShortcut argShortcut, string argPath);
	}
}
